{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "639de9fa",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "67a52248",
   "metadata": {},
   "outputs": [],
   "source": [
    "w1 = -0.93\n",
    "w2 = -0.77\n",
    "b = 0.12"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "34640b3f",
   "metadata": {},
   "outputs": [
    {
     "ename": "SyntaxError",
     "evalue": "cannot assign to operator (4290458528.py, line 1)",
     "output_type": "error",
     "traceback": [
      "\u001b[0;36m  File \u001b[0;32m\"/var/folders/0y/9ngk9zq509d_968nb4blyvrm0000gn/T/ipykernel_1549/4290458528.py\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m    w1 * x1 + w2 * x2 + b = y #把三维压成一个二维\u001b[0m\n\u001b[0m    ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m cannot assign to operator\n"
     ]
    }
   ],
   "source": [
    "w1 * x1 + w2 * x2 + b = y #把三维压成一个二维\n",
    "# 有个 x1， x2 以及y，就变成了一个三维的，\n",
    "w1 * x + w2 * y + b = z # 压成二维以后高就没了，所以z变成了0\n",
    "w1 * x + w2 * y + b = 0 # w1 * x+b=-w2 *y\n",
    "y = -w1/w2 * x - b/w2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "2fb40e79",
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "x = np.linspace(-6,7,20)\n",
    "y = -w1/w2 * x - b/w2\n",
    "plt.plot(x,y)\n",
    "plt.axis((-6,6,-6,6))\n",
    "\n",
    "#设置刻度\n",
    "_=plt.xticks(np.arange(-6,7))\n",
    "_=plt.yticks(np.arange(-6,7))\n",
    "#_=是用来接受的，用那个接受以后下面不会出现一些乱七八糟的东西\n",
    "# 神经网络本质就是线性回归"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "c93c6062",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7ff5d80fc160>]"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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AisAALAUYQQAAFiqS4cRl8ulxx57TC6Xy+pS2k2oryPrF/xCfR1Dff2k0F9H1q/9BcUJrAAAIHR16SMjAADAeoQRAABgKcIIAACwFGEEAABYKuTDyJNPPqns7GxFRUUpLi6u0T4FBQW64YYbFB0drcTERD3wwAOqrq5u9n3dbrfuv/9+JSYmKjo6WjfeeKMKCwvbYQ1abvny5bLZbI0+1q1b1+Ryd9xxx2n9L7nkkg6sPDD9+/c/rd6HH3642WWMMXr88ceVkpKiyMhIXXnlldq0aVMHVdxyu3fv1p133qn09HRFRkZqwIABeuyxx87489jZt+GcOXOUnp6uiIgIZWZmatWqVc32X7FihTIzMxUREaFzzjlHL730UgdVGpjZs2frO9/5jrp3765evXrppptu0rZt25pdpqnf061bt3ZQ1YF5/PHHT6s1OTm52WWCZftJje9PbDab7rvvvkb7d/btt3LlSt1www1KSUmRzWbTu+++2+D11u4LFyxYoPPOO08ul0vnnXeeFi1a1KZ1h3wYqa6u1q233qqf/vSnjb7u9Xp13XXXqaqqSqtXr9bbb7+tBQsW6MEHH2z2fadNm6ZFixbp7bff1urVq3X06FFdf/318nq97bEaLZKdna2ioqIGj7vuukv9+/fXqFGjml32mmuuabDc4sWLO6jq1pk1a1aDev/jP/6j2f7PPPOMnn32WT3//PNat26dkpOTdfXVV/vve9RZbN26VT6fTy+//LI2bdqkP/zhD3rppZf0yCOPnHHZzroN58+fr2nTpunRRx9Vfn6+Ro8erfHjx6ugoKDR/rt27dK1116r0aNHKz8/X4888ogeeOABLViwoIMrP7MVK1bovvvu06effqrc3Fx5PB7l5OSoqqrqjMtu27atwfYaOHBgB1TcOsOGDWtQ68aNG5vsG0zbT5LWrVvXYN1yc3MlSbfeemuzy3XW7VdVVaXhw4fr+eefb/T11uwL165dqwkTJmjixIn64osvNHHiRN1222367LPP2q5w00XMmzfPxMbGnta+ePFiY7fbzb59+/xtb731lnG5XKa8vLzR9zpy5IgJDw83b7/9tr9t3759xm63mw8//LDNa2+t6upq06tXLzNr1qxm+02ePNl873vf65ii2kBaWpr5wx/+0OL+Pp/PJCcnm6eeesrfduLECRMbG2teeumldqiwbT3z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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# sigmoid 函数\n",
    "x = np.linspace(-10,10,100) #定义一个区间，-10-10，然后100个点\n",
    "y = 1 / (1 + np.exp(-x))\n",
    "plt.plot(x,y)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "97167f03",
   "metadata": {},
   "source": [
    "## 激活函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "2ba055d1",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "max(1,0)\n",
    "#max 是返回括号里面的最大值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "c2abc96f",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 没有激活函数的话，神经网络不会拐弯，不会拐弯的话处理不了非线性问题\n",
    "# 激活函数， relu，sigmoid\n",
    "# 用的最多的激活函数 relu：\n",
    "def relu(x):\n",
    "    return max(x,0)\n",
    "#如果 x<0 返回0，如果大于0就会返回自己\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "293e5269",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7ff5eac500a0>]"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAh8AAAGdCAYAAACyzRGfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA3i0lEQVR4nO3dd3xUdb7/8XfqpJCEmgYBAtJDooIiCCqoIAJiAct6veiWn6ygIkXBRlEIzfK7666u/ryse11FaYqKYlgpKqCAmNB7CSWEmoSE1Pn+/gjkGgiQhJk5U17Px2MeD3LmzJz3yRkm78xnTsbPGGMEAADgIv5WBwAAAL6F8gEAAFyK8gEAAFyK8gEAAFyK8gEAAFyK8gEAAFyK8gEAAFyK8gEAAFwq0OoA57Pb7Tp06JAiIiLk5+dndRwAAFANxhjl5eUpPj5e/v6Xfm3D7crHoUOHlJCQYHUMAABQC5mZmWrSpMkl13G78hERESGpPHxkZKTFaQAAQHXk5uYqISGh4uf4pbhd+Tg3aomMjKR8AADgYarzlgnecAoAAFyK8gEAAFyK8gEAAFyK8gEAAFyK8gEAAFyK8gEAAFyK8gEAAFyK8gEAAFyK8gEAAFyqxuVjxYoVGjBggOLj4+Xn56fPPvus0vXGGE2YMEHx8fEKDQ3VLbfcok2bNjkqLwAA8HA1Lh/5+flKSUnRW2+9VeX106dP1+uvv6633npLa9asUWxsrG6//Xbl5eVdcVgAAOD5avzZLn379lXfvn2rvM4YozfffFMvvPCC7r33XknSBx98oJiYGH300Ud6/PHHrywtAADweA59z8eePXuUlZWl3r17Vyyz2Wy6+eabtXLlyipvU1RUpNzc3EoXAADgeMYYjfo0XR//vF/GGMtyOLR8ZGVlSZJiYmIqLY+Jiam47nypqamKioqquCQkJDgyEgAAOGth+iHN++WAXvpso/Ycy7csh1POdjn/43SNMRf9iN1x48YpJyen4pKZmemMSAAA+LTsvEKNX1h+AsiTvVqpRaM6lmWp8Xs+LiU2NlZS+SsgcXFxFcuzs7MveDXkHJvNJpvN5sgYAADgN4wxemHBRp0qKFGH+Eg90bOlpXkc+spHYmKiYmNjlZaWVrGsuLhYy5cvV7du3Ry5KQAAUE2f/XpQaZuPKCjATzMHpygowNo/81XjVz5Onz6tnTt3Vny9Z88e/frrr6pfv76aNm2qESNGaMqUKWrVqpVatWqlKVOmKCwsTL/73e8cGhwAAFzekdxCjf+8fNzyVK9WahcXaXGiWpSPtWvXqmfPnhVfjxw5UpI0ZMgQ/eMf/9Czzz6rM2fO6IknntDJkyfVpUsXffvtt4qIiHBcagAAcFnGGD0/f4NyC0vVsXGU/nyLteOWc/yMlefaVCE3N1dRUVHKyclRZKT17QwAAE81d90BjZ6TruAAf335VHe1jnHeCwE1+fnNZ7sAAOCFsnIKNfGL8nHLM7e3dmrxqCnKBwAAXsYYo7HzM5RXWKqUhLr6U49EqyNVQvkAAMDLzFl7QMu2HVVwoL9eG5yiQIvPbjmfe6UBAABX5NCpM3rly82SpNG9W+uqaOv+mNjFUD4AAPASxhg9Ny9DeUWlurZpXf2hewurI1WJ8gEAgJeYvSZT3+84Jlugv2YOTlGAf9UfbWI1ygcAAF7gwMkCvXp23DKmTxtLP7vlcigfAAB4OLvd6Nm5GcovLtN1zevpsRvd6+yW81E+AADwcP/6eb9W7jqukCB/zRjkvuOWcygfAAB4sP3HC5S6aIsk6bk72qp5w3CLE10e5QMAAA9ltxuNmZuuguIyXZ9YX0O6Nrc6UrVQPgAA8FD/s3qfftpzQmHBAZo5KEX+bj5uOYfyAQCAB9p7LF9Tv94qSRrbt62aNgizOFH1UT4AAPAw585uOVNSpq4tGug/ujSzOlKNUD4AAPAw/1i5Vz/vPaHw4ABNH5TsMeOWcygfAAB4kN1HT2v64vJxy/P92imhvueMW86hfAAA4CHK7EZj5maosMSu7lc11O+ub2p1pFqhfAAA4CH++4c9WrfvpOrYAjVtULL8/Dxr3HIO5QMAAA+wM/u0Zny7TZL0Yr92alw31OJEtUf5AADAzZXZjUbPSVdxqV03tW6kB65LsDrSFaF8AADg5t77frd+zTyliJBATbuvo8eOW86hfAAA4MZ2HMnT699ulyS93L+94qI8d9xyDuUDAAA3VVpm16g56Sous6tX22gN6tTE6kgOQfkAAMBN/X3FbmUcyFFkSKBS7/X8ccs5lA8AANzQ1qxcvbmkfNwy4a4OiokMsTiR41A+AABwMyVldo2ek66SMqPb2sXonmsaWx3JoSgfAAC4mXeW7dLGg7mKCg3SlHuSvGbccg7lAwAAN7L5UK7+67sdkqRJAzso2ovGLedQPgAAcBPFpf87bundPkZ3pcRbHckpKB8AALiJvy7dqc2Hc1UvLEiT7/Ges1vOR/kAAMANbDyYo78u3SlJmjQwSY0ibBYnch7KBwAAFjs3bim1G93ZMVb9k+OsjuRUlA8AACz2l+92aGtWnhqEB+uVgd53dsv5KB8AAFgo48Ap/W3ZLknSK3cnqUEd7x23nEP5AADAIkWlZRr1abrK7Eb9k+N0Z0fvHrecQ/kAAMAiby7ZoR3Zp9WwTrAmDUyyOo7LUD4AALDAr5mn9Pfl5eOWV+/uqPrhwRYnch3KBwAALlZYUqZRn/4qu5EGXh2vO5JirY7kUpQPAABc7I207dp1NF+NImyaMKCD1XFcjvIBAIALrdt3Uu9+v1uSNOWejqrnQ+OWcygfAAC4SGFJmcbMSZcx0r3XNtbt7WOsjmQJygcAAC4yc/E27T6Wr5hIm8b3971xyzmUDwAAXGDN3hN6/8c9kqSp9yYrKizI4kTWoXwAAOBkBcWlFeOWwZ2aqGfbaKsjWYryAQCAk03/Zpv2Hi9QXFSIXuzf3uo4lqN8AADgRKt3H9c/Vu6VJE29L1lRob47bjmH8gEAgJPkF5Xq2bkZkqSHrk/Qza0bWZzIPVA+AABwkmnfbNX+EwVqXDdUz9/Zzuo4boPyAQCAE6zceUz/XLVPkjTtvmRFhDBuOYfyAQCAg50uKtWYs+OWh7s0VfdWDS1O5F4oHwAAONiURVt08NQZNakXqnGMWy5A+QAAwIG+33FUH/20X5I0fVCy6tgCLU7kfigfAAA4SF5hiZ47O24Z0rWZurVk3FIVygcAAA4y+astOpRTqKb1w/Rc37ZWx3FblA8AABxg2bZszV6TKUmaMShZYcGMWy6G8gEAwBXKOVOisfM2SJIe7dZcXVo0sDiRe6N8AABwhV79crOycgvVvEGYnruDccvlOLx8lJaW6sUXX1RiYqJCQ0PVokULTZo0SXa73dGbAgDAct9tPaI56w7Iz0+aMThFocEBVkdyew4fSE2bNk3vvPOOPvjgA3Xo0EFr167VY489pqioKD399NOO3hwAAJbJKSjRuPnl45Y/3Jio65rXtziRZ3B4+Vi1apUGDhyofv36SZKaN2+ujz/+WGvXrnX0pgAAsNTELzfpSG6RWjQM1+g+bayO4zEcPnbp3r27/v3vf2v79u2SpPT0dP3www+68847q1y/qKhIubm5lS4AALi7JZuPaP4vB+V/dtwSEsS4pboc/srHc889p5ycHLVt21YBAQEqKyvT5MmT9dBDD1W5fmpqqiZOnOjoGAAAOM3J/GKNW1A+bvljjxbq1KyexYk8i8Nf+fjkk0/04Ycf6qOPPtIvv/yiDz74QDNnztQHH3xQ5frjxo1TTk5OxSUzM9PRkQAAcKgJX2zS0bwitWwUrpG3t7Y6jsdx+CsfY8aM0dixY/Xggw9Kkjp27Kh9+/YpNTVVQ4YMuWB9m80mm83m6BgAADjFNxuz9Pmvh+TvJ712/9WMW2rB4a98FBQUyN+/8t0GBARwqi0AwOOdyC/Wi5+Vj1uG3txSVyfUtTaQh3L4Kx8DBgzQ5MmT1bRpU3Xo0EHr16/X66+/rt///veO3hQAAC718ucbdex0sVrH1NHTt7WyOo7Hcnj5+Mtf/qKXXnpJTzzxhLKzsxUfH6/HH39cL7/8sqM3BQCAyyzacFhfZhxWgL+fZg5OkS2QcUtt+RljjNUhfis3N1dRUVHKyclRZGSk1XEAANCx00Xq/cYKncgv1pO9rtKo3vxNj/PV5Oc3n+0CAMAlGGP00mcbdSK/WG1jI/RkL8YtV4ryAQDAJXyZcVhfb8xS4NlxS3AgPzqvFN9BAAAuIjuvUC99vlGSNLzXVUpqHGVxIu9A+QAAoArGGL24YKNOFZSofVykhvW8yupIXoPyAQBAFRamH9K3m48oKMBPr92foqAAfmQ6Ct9JAADOk51bqJc/3yRJeqpXK7WL4+xLR6J8AADwG8YYPb9gg3LOlKhj4ygNvaWl1ZG8DuUDAIDfmP/LQS3Zkq3gAH/NHMy4xRn4jgIAcFZWTqEmfFE+bnn6tlZqExthcSLvRPkAAEDl45Zx8zOUV1iqlCZRevymFlZH8lqUDwAAJM1Zd0BLtx1VcGD5uCWQcYvT8J0FAPi8Q6fO6JUvNkuSRt7eWq1iGLc4E+UDAODTjDEaO3+D8opKdU3TuvpTD8Ytzkb5AAD4tE/WZGrF9qOynR23BPj7WR3J61E+AAA+68DJAr361RZJ0ujebdSyUR2LE/kGygcAwCcZY/TcvAydLipV52b19PvuiVZH8hmUDwCAT/rXT/v1487jCgny1/RByYxbXIjyAQDwOZknCjRlUfm45dk+bdWCcYtLUT4AAD7Fbjd6dm6GCorLdH3z+nq0W3OrI/kcygcAwKd8+NM+rdp9XKFBAZoxOFn+jFtcjvIBAPAZ+47nK3XRVknSuDvbqlmDcIsT+SbKBwDAJ9jtRmPmZuhMSZluaFFf/9GlmdWRfBblAwDgEz5YtVc/7zmhsOAAzRiUwrjFQpQPAIDX23MsX9O+OTduaaeE+mEWJ/JtlA8AgFcrsxuNmZOuwhK7urVsoIevb2p1JJ9H+QAAeLVZP+7R2n0nFR4coOmDOLvFHVA+AABea9fR05qxeJsk6cX+7dWkHuMWd0D5AAB4pTK70eg56SoqtatHq4Z68LoEqyPhLMoHAMAr/b/vd2v9/lOKsAVq2n3J8vNj3OIuKB8AAK+z40ieXkvbLkl6qX97xdcNtTgRfovyAQDwKqVldo2em6HiUrtuadNIgzs3sToSzkP5AAB4lXe/3630zFOKCAnU1HsZt7gjygcAwGtsy8rTm2k7JEkTBnRQbFSIxYlQFcoHAMArlJTZNXpOuorL7Lq1bbTuvbax1ZFwEZQPAIBXeGfZLm04mKOo0CBNubcj4xY3RvkAAHi8LYdz9V/flY9bJt7VQTGRjFvcGeUDAODRSsrsGvVpukrKjHq3j9HAq+OtjoTLoHwAADzaX5fu1ObDuaobFqRX70li3OIBKB8AAI+18WCO3vpupyRp0sAkRUcwbvEElA8AgEcqLi0/u6XUbtQ3KVYDkuOsjoRqonwAADzSW9/t0NasPNUPD9YrdzNu8SSUDwCAx9lwIEd/XbZLkvTKwCQ1rGOzOBFqgvIBAPAoRaVlGjXnV5XZjfolx6kf4xaPQ/kAAHiU/7tkh7YfOa2GdYL1ysAkq+OgFigfAACP8WvmKb2zvHzc8urdHVU/PNjiRKgNygcAwCMUlpRp9Jx02Y008Op43ZEUa3Uk1BLlAwDgEd5Ysl07s0+rUYRNEwZ0sDoOrgDlAwDg9tbtO6n3VuyWJE25p6PqMW7xaJQPAIBbKywp05iz45Z7r2ms29vHWB0JV4jyAQBwazMXb9PuY/mKjrBpPOMWr0D5AAC4rbV7T+j9H/dIkqbe11FRYUEWJ4IjUD4AAG7pTHH52S3GSIM7NVGvtoxbvAXlAwDglqYv3qq9xwsUGxmiF/u3tzoOHIjyAQBwOz/tPq5ZP+6VdHbcEsq4xZtQPgAAbqWguFRj5mZIkh68LkG3tIm2OBEcjfIBAHAr077eqv0nChQfFaLn+7WzOg6cwCnl4+DBg/qP//gPNWjQQGFhYbr66qu1bt06Z2wKAOBFVu46pg9W7ZMkTRuUrMgQxi3eKNDRd3jy5EndeOON6tmzp77++mtFR0dr165dqlu3rqM3BQDwIvlFpXr27Ljld12aqkerRhYngrM4vHxMmzZNCQkJmjVrVsWy5s2bO3ozAAAvk/r1Fh04eUaN64bq+TsZt3gzh49dFi5cqM6dO2vw4MGKjo7WNddco/fee++i6xcVFSk3N7fSBQDgW37YcUwfrt4vSZoxKFl1bA7/3RhuxOHlY/fu3Xr77bfVqlUrLV68WEOHDtVTTz2lf/7zn1Wun5qaqqioqIpLQkKCoyMBANxYXmGJnptXPm555IZm6nZVQ4sTwdn8jDHGkXcYHByszp07a+XKlRXLnnrqKa1Zs0arVq26YP2ioiIVFRVVfJ2bm6uEhATl5OQoMjLSkdEAAG5o3PwMffxzphLqh+qbp29SOK96eKTc3FxFRUVV6+e3w1/5iIuLU/v2lf8SXbt27bR///4q17fZbIqMjKx0AQD4hhXbj+rjnzMlSTMGpVA8fITDy8eNN96obdu2VVq2fft2NWvWzNGbAgB4sNzfjFse7dZcN7RoYHEiuIrDy8czzzyj1atXa8qUKdq5c6c++ugjvfvuuxo2bJijNwUA8GCvfrlZh3MK1axBmJ69o43VceBCDi8f1113nRYsWKCPP/5YSUlJeuWVV/Tmm2/q4YcfdvSmAAAeaunWbH269oD8/MrHLWHBjFt8iVOOdv/+/dW/f39n3DUAwMPlFJRo7Pzyccvvb0zU9Yn1LU4EV+OzXQAALjXxy006klukFg3DNbo34xZfRPkAALjMks1HNP+Xg+XjlsHJCg0OsDoSLED5AAC4xKmCYo1bsEGS9KceLdSpGeMWX0X5AAC4xISFm3Q0r0gtG4Vr5O2trY4DC1E+AABOt3hTlj779ZD8/aSZg1MUEsS4xZdRPgAATnUiv1gvnB23PH5zS13TtJ7FiWA1ygcAwKnGL9ykY6eL1Tqmjkbc1srqOHADlA8AgNMs2nBYX6QfUoC/n2YOTpEtkHELKB8AACc5frpIL322UZI09OYWSm5S19pAcBuUDwCAU7z8+SYdzy9W29gIPXUr4xb8L8oHAMDhvsw4pK82HFYg4xZUgfIBAHCoo3n/O24Z1vMqJTWOsjgR3A3lAwDgMMYYvfjZBp0sKFG7uEgN63mV1ZHghigfAACHWZh+SIs3HVGgv59eG5yi4EB+zOBCPCoAAA6RnVuo8Qs3SZKeurWV2sdHWpwI7oryAQC4YsYYPb9gg04VlCipcaT+fEtLqyPBjVE+AABXbMH6g1qyJVtBAX56bfDVCgrgxwsujkcHAOCKHMkt1ISz45YRt7VWm9gIixPB3VE+AAC1ZozRuPkblFtYquQmUXr8phZWR4IHoHwAAGpt7roD+m5rtoID/PXa4BQFMm5BNfAoAQDUyuGcM5r0xWZJ0sjerdUqhnELqofyAQCoMWOMxs7boLyiUl2dUFd/6sG4BdVH+QAA1NinazO1fPtRBQf6a+bgFAX4+1kdCR6E8gEAqJGDp87olS+3SJLG9G6jq6LrWJwInobyAQCotvJxS4ZOF5WqU7N6+n33RKsjwQNRPgAA1fbRz/v1/Y5jsgX6a8agZMYtqBXKBwCgWjJPFGjKV+XjlmfvaKsWjRi3oHYoHwCAy7LbjZ6bl6H84jJd37y+HuvW3OpI8GCUDwDAZf3rp31aueu4QoMCNH1QsvwZt+AKUD4AAJe0/3iBpizaKkka27etmjcMtzgRPB3lAwBwUXa70ei56TpTUqYuifX1yA3NrI4EL0D5AABc1D9X7dXPe04oLDhAMwalMG6BQ1A+AABV2nssX1O/KR+3jLuznZo2CLM4EbwF5QMAcIEyu9HoOekqLLGrW8sGevj6plZHghehfAAALjDrxz1au++kwoMDNO0+zm6BY1E+AACV7D56WjMWb5MkvdCvvRLqM26BY1E+AAAVzo1bikrt6tGqoR66PsHqSPBClA8AQIX3f9itX/afUh1boKbelyw/P8YtcDzKBwBAkrQzO08zv90uSXqpfzs1rhtqcSJ4K8oHAEClZXaNnpOh4lK7bm7dSPd3ZtwC56F8AAD03vd79GvmKUWEBGrqfR0Zt8CpKB8A4OO2H8nTG2nl45bxAzooLopxC5yL8gEAPqx83JKu4jK7erWN1n3XNrY6EnwA5QMAfNjfV+xWxoEcRYYEKvVexi1wDcoHAPiorVm5enNJ+bhl4sAOiokMsTgRfAXlAwB8UEmZXaM+TVdJmdHt7WN099WMW+A6lA8A8EF/W7pLmw7lqm5YkCbfk8S4BS5F+QAAH7PpUI7+8t0OSdKkgUmKjmDcAteifACADykuLR+3lNqN7ugQqwHJcVZHgg+ifACAD3nrux3ampWn+uHBeuVuxi2wBuUDAHzExoM5+uuyXZKkVwYmqVGEzeJE8FWUDwDwAUWlZRr1abrK7Eb9OsapH+MWWIjyAQA+4L/+vUPbjuSpQXiwJg3sYHUc+DjKBwB4ufTMU3r77Ljl1buT1KAO4xZYi/IBAF6ssKRMo+eky26ku1Li1bcj4xZYj/IBAF7szSU7tCP7tBrWsWniXYxb4B6cXj5SU1Pl5+enESNGOHtTAIDf+GX/Sb27onzcMuWeJNULD7Y4EVDOqeVjzZo1evfdd5WcnOzMzQAAzvPbccs91zRW7w6xVkcCKjitfJw+fVoPP/yw3nvvPdWrV89ZmwEAVOH1tO3afTRf0RE2jR/Q3uo4QCVOKx/Dhg1Tv379dNttt11yvaKiIuXm5la6AABqb92+E3rv+92SpNR7O6puGOMWuJdAZ9zp7Nmz9csvv2jNmjWXXTc1NVUTJ050RgwA8Dlniss0ek6GjJHuu7aJbm0XY3Uk4AIOf+UjMzNTTz/9tD788EOFhFz+kxLHjRunnJyciktmZqajIwGAz5ixeJv2HMtXTKRNLzNugZty+Csf69atU3Z2tjp16lSxrKysTCtWrNBbb72loqIiBQQEVFxns9lks/EHbwDgSv2854RmrdwjSZp6X7KiQoMsTgRUzeHl49Zbb9WGDRsqLXvsscfUtm1bPffcc5WKBwDAMQqKSzVmbrqMkR7onKCebaKtjgRclMPLR0REhJKSkiotCw8PV4MGDS5YDgBwjOnfbNO+4wWKiwrRC/3bWR0HuCT+wikAeLhVu47rHyv3SpKm3ZesyBDGLXBvTjnb5XzLli1zxWYAwOfkF5WPWyTpoeub6qbWjSxOBFwer3wAgAeb+vVWHTh5Ro3rhuqFfoxb4BkoHwDgoX7ceUz/s3qfJGn6oGTVsbnkxWzgilE+AMAD5RWW6Nm5GZKkh7s01Y1XNbQ4EVB9lA8A8EBTFm3VwVNn1KReqJ6/k3ELPAvlAwA8zIrtR/Xxz/slSTMGpSiccQs8DOUDADxIbmGJxs4rH7c82q25urZsYHEioOYoHwDgQSZ/uUWHcgrVrEGYnr2jjdVxgFqhfACAh1i6LVufrM2Un1/5uCUsmHELPBPlAwA8QM6ZEo2bV/65WY91S9T1ifUtTgTUHuUDADzAK19uVlZuoRIbhmtMH8Yt8GyUDwBwc//eckRz1x2Qn580c3CyQoP5dHB4NsoHALixUwXFGje/fNzyx+6J6tSMcQs8H+UDANzYxC82KzuvSC0ahWtUb8Yt8A6UDwBwU99uytKC9Qfl7yfNHJyikCDGLfAOlA8AcEMn84v1/IKNkqT/c1NLXdu0nsWJAMehfACAGxq/cJOOnS5Sq+g6GnFbK6vjAA5F+QAAN/P1hsNamH5IAf5+jFvglSgfAOBGjp8u0ouflY9bht7cQikJda0NBDgB5QMA3MjLCzfpeH6x2sRE6KlbGbfAO1E+AMBNfJlxSF9lHK4Yt9gCGbfAO1E+AMANHM0r0ktnxy3Dbmmpjk2iLE4EOA/lAwAsZozRS59t1MmCErWNjdDwXoxb4N0oHwBgsYXph/TNpiwF+vvptftTFBzIUzO8G49wALBQdl6hxi/cJEl6slcrdYhn3ALvR/kAAIsYY/TCgo06VVCiDvGReqJnS6sjAS5B+QAAi3z260GlbT6ioIDys1uCAnhKhm/gkQ4AFjiSW6jxn5ePW56+tZXaxUVanAhwHcoHALiYMUbj5m9QbmGpOjaO0tCbGbfAt1A+AMDF5v1yUN9tzVZwgL9euz9FgYxb4GN4xAOACx3OOaOJX5SPW0bc3kqtYyIsTgS4HuUDAFzEGKOx8zYor7BUKQl19X96tLA6EmAJygcAuMinazO1fPtRBQf667XByYxb4LN45AOACxw8dUavfrlFkjS6d2tdFc24Bb6L8gEATlY+bslQXlGprm1aV3/ozrgFvo3yAQBO9vHPmfp+xzHZAv01c3CKAvz9rI4EWIryAQBOdOBkgSZ/tVmSNKZPG7VoVMfiRID1KB8A4CR2u9GzczOUX1ymzs3q6bEbE62OBLgFygcAOMm/ft6vlbuOKySIcQvwW5QPAHCC/ccLlLqo/OyW5+5oq+YNwy1OBLgPygcAOJjdbjRmbroKist0fWJ9Dena3OpIgFuhfACAg/3P6n36ac8JhQUHaOagFPkzbgEqoXwAgAPtPZavqV9vlSSN69tWTRuEWZwIcD+UDwBwkHNnt5wpKVPXFg30cJdmVkcC3BLlAwAcZNbKvfp57wmFBwdo+qBkxi3ARVA+AMABdh89rRmLy8ctz/drp4T6jFuAi6F8AMAVKrMbjZmbocISu7pf1VC/u76p1ZEAt0b5AIAr9N8/7NG6fSdVxxaoaYOS5efHuAW4FMoHAFyBndmnNePbbZKkF/u1U+O6oRYnAtwf5QMAaqm0zK7Rc9JVXGrXTa0b6YHrEqyOBHgEygcA1NJ73+/Rr5mnFGEL1LT7OjJuAaqJ8gEAtbDjSJ7eSNsuSXp5QHvFRTFuAaqL8gEANVRaZteoOekqLrOrV9toDerUxOpIgEehfABADf19xW5lHMhRZEigUu9l3ALUFOUDAGpga1au3lxSPm6ZcFcHxUSGWJwI8DyUDwCoppKzZ7eUlBnd1i5G91zT2OpIgEeifABANb29bJc2HsxV3bAgTbk3iXELUEsOLx+pqam67rrrFBERoejoaN19993atm2bozcDAC616VCO/uvfOyRJE+/qoOgIxi1AbTm8fCxfvlzDhg3T6tWrlZaWptLSUvXu3Vv5+fmO3hQAuERxqV2j52So1G7Up0OM7kqJtzoS4NECHX2H33zzTaWvZ82apejoaK1bt0433XSTozcHAE7316U7teVwruqFBenVuzm7BbhSDi8f58vJyZEk1a9fv8rri4qKVFRUVPF1bm6usyMBQLVtPJijvy7dKUl65e4kNYqwWZwI8HxOfcOpMUYjR45U9+7dlZSUVOU6qampioqKqrgkJPDZCADcQ1FpmUbPSVep3ahfxzj1T2bcAjiCU8vH8OHDlZGRoY8//vii64wbN045OTkVl8zMTGdGAoBq+8u/d2prVp4ahAdr0sAOVscBvIbTxi5PPvmkFi5cqBUrVqhJk4v/6WGbzSabjZcxAbiXjAOn9PbyXZKkV+9OUoM6PE8BjuLw8mGM0ZNPPqkFCxZo2bJlSkxMdPQmAMCpikrLNOrTdJXZjQakxKtvxzirIwFexeHlY9iwYfroo4/0+eefKyIiQllZWZKkqKgohYbyqY8A3N+bS3ZoR/ZpNaxj06S7GLcAjubw93y8/fbbysnJ0S233KK4uLiKyyeffOLoTQGAw63ff1J/PztumXJPkuqFB1ucCPA+Thm7AIAnKiwpP7vFbqS7r45X7w6xVkcCvBKf7QIAZ72Rtl27juarUYRNExi3AE5D+QAASev2ndC73++WJKXe01F1wxi3AM5C+QDg884Ul2n0nAwZI913bRPd1j7G6kiAV6N8APB5M7/dpj3H8hUTadPL/dtbHQfwepQPAD5tzd4T+u8f90iSpt6XrKiwIIsTAd6P8gHAZxUUl2rMnHQZI93fuYl6tom2OhLgEygfAHzW9G+2ae/xAsVFhehFxi2Ay1A+APik1buP6x8r90qSpt2XrMgQxi2Aq1A+APic/KJSjZmbLkl66PoE3dS6kcWJAN9C+QDgc6Z9s1WZJ86ocd1QPX9nO6vjAD6H8gHAp6zceUz/XLVPUvm4JYJxC+BylA8APuN0UanGzM2QJD3cpam6t2pocSLAN1E+APiMKYu26OCpM2pSL1TjGLcAlqF8APAJ3+84qo9+2i9Jmj4oWXVsDv9QbwDVRPkA4PXyCkv03Nlxy5CuzdStJeMWwEqUDwBeb/JXW3Qop1BN64fpub5trY4D+DzKBwCvtmxbtmavyZQkzRiUrLBgxi2A1SgfALxWzpkSjZ23QZL02I3N1aVFA4sTAZAoHwC82KtfblZWbqGaNwjTs30YtwDugvIBwCt9t/WI5qw7ID8/aebgFIUGB1gdCcBZlA8AXien4H/HLX+4MVGdm9e3OBGA36J8APA6E7/YpOy8IrVoGK7RfdpYHQfAeSgfALxK2uYjmr/+oPz9pJn3pygkiHEL4G4oHwC8xsn8Yj2/oHzc8qceLXRt03oWJwJQFcoHAK8x4YtNOppXpJaNwvXM7a2tjgPgIigfALzCNxsP6/NfD8nfT3rt/qsZtwBujPIBwOMdP12kFxZslCQNvbmlrk6oa20gAJdE+QDg8V5euEnH84vVOqaOnr6tldVxAFwG5QOAR/sq47C+yjisAH8/vTb4atkCGbcA7o7yAcBjHTtdpJc+Lx+3DLulpTo2ibI4EYDqoHwA8EjGGL302UadyC9W29gIDe/FuAXwFJQPAB7pi4zD+npjlgL9/TRzcIqCA3k6AzwF/1sBeJzsvEK9fG7c0vMqJTVm3AJ4EsoHAI9ijNELCzbqVEGJ2sdFaljPq6yOBKCGKB8APMrnvx5S2uYjCgpg3AJ4Kv7XAvAY2bmFGr9wkyTpyV6t1D4+0uJEAGqD8gHAIxhj9PyCDco5U6KkxpH68y0trY4EoJYoHwA8wvxfDmrJlmwFBZT/MbGgAJ6+AE/F/14Abi8rp1ATvygft4y4rbXaxEZYnAjAlaB8AHBrxhiNm5+h3MJSpTSJ0uM3tbA6EoArRPkA4NbmrDugpduOKjjAXzMHpyiQcQvg8fhfDMBtHTp1Rq98sVmSNLJ3a7WKYdwCeAPKBwC3ZIzR2PkblFdUqmua1tWfejBuAbwF5QOAW/pkTaZWbD8qW2D5uCXA38/qSAAchPIBwO0cOFmgV7/aIkka06eNWjaqY3EiAI5E+QDgVowxem5ehk4Xlapzs3p67MZEqyMBcDDKBwC38q+f9uvHnccVEuSvGYxbAK9E+QDgNjJPFGjKovJxy7N92iqxYbjFiQA4A+UDgFuw243GzE1XQXGZrm9eX492a251JABOQvkA4Bb+Z/U+rd59QqFBAZoxOFn+jFsAr0X5AGC5fcfzNfXrrZKksX3bqlkDxi2AN6N8ALCU3W40Zk6GzpSUqWuLBnrkhmZWRwLgZJQPAJb6x8q9+nnvCYUFB2j6IMYtgC+gfACwzJ5j+Zq+uHzc8vyd7ZRQP8ziRABcgfIBwBJldqMxc9JVWGJX96sa6uEuTa2OBMBFKB8ALDHrxz1au++k6tgCNfW+jvLzY9wC+AqnlY+//e1vSkxMVEhIiDp16qTvv//eWZsC4GG+23pEMxZvkyS90K+dmtRj3AL4EqeUj08++UQjRozQCy+8oPXr16tHjx7q27ev9u/f74zNAfAQJWV2TVm0Rb//x1oVldrVq220HrwuwepYAFzMzxhjHH2nXbp00bXXXqu33367Ylm7du109913KzU19ZK3zc3NVVRUlHJychQZGenoaAAscuBkgYZ/tF6/Zp6SJD3arbnG3dlWtsAAa4MBcIia/PwOdPTGi4uLtW7dOo0dO7bS8t69e2vlypUXrF9UVKSioqKKr3Nzcx0dSZJUWmbX5LOfGQHAtex2owXrDyq3sFSRIYGaMThFfTrEWh0LgEUcXj6OHTumsrIyxcTEVFoeExOjrKysC9ZPTU3VxIkTHR3jAnYjzfpxr9O3A+Dirk6oq788dA2n1AI+zuHl45zz37lujKny3ezjxo3TyJEjK77Ozc1VQoLjZ8D+ftKwni0dfr8AqicuKlT3d05QcCAn2QG+zuHlo2HDhgoICLjgVY7s7OwLXg2RJJvNJpvN5ugYFwgM8NeYPm2dvh0AAHBpDv8VJDg4WJ06dVJaWlql5WlpaerWrZujNwcAADyMU8YuI0eO1COPPKLOnTura9euevfdd7V//34NHTrUGZsDAAAexCnl44EHHtDx48c1adIkHT58WElJSVq0aJGaNePTKgEA8HVO+TsfV4K/8wEAgOepyc9v3nYOAABcivIBAABcivIBAABcivIBAABcivIBAABcivIBAABcivIBAABcivIBAABcivIBAABcyil/Xv1KnPuDq7m5uRYnAQAA1XXu53Z1/nC625WPvLw8SVJCQoLFSQAAQE3l5eUpKirqkuu43We72O12HTp0SBEREfLz83Pofefm5iohIUGZmZle+bkx3r5/kvfvI/vn+bx9H719/yTv30dn7Z8xRnl5eYqPj5e//6Xf1eF2r3z4+/urSZMmTt1GZGSkVz6gzvH2/ZO8fx/ZP8/n7fvo7fsnef8+OmP/LveKxzm84RQAALgU5QMAALiUT5UPm82m8ePHy2azWR3FKbx9/yTv30f2z/N5+z56+/5J3r+P7rB/bveGUwAA4N186pUPAABgPcoHAABwKcoHAABwKcoHAABwKa8qH5MnT1a3bt0UFhamunXrVrnO/v37NWDAAIWHh6thw4Z66qmnVFxcfMn7LSoq0pNPPqmGDRsqPDxcd911lw4cOOCEPaiZZcuWyc/Pr8rLmjVrLnq7Rx999IL1b7jhBhcmr77mzZtfkHXs2LGXvI0xRhMmTFB8fLxCQ0N1yy23aNOmTS5KXDN79+7VH/7wByUmJio0NFQtW7bU+PHjL/uYdOdj+Le//U2JiYkKCQlRp06d9P33319y/eXLl6tTp04KCQlRixYt9M4777goac2lpqbquuuuU0REhKKjo3X33Xdr27Ztl7zNxf6fbt261UWpq2/ChAkX5IyNjb3kbTzp+ElVP6f4+flp2LBhVa7v7sdvxYoVGjBggOLj4+Xn56fPPvus0vW1fT6cN2+e2rdvL5vNpvbt22vBggUOze1V5aO4uFiDBw/Wn//85yqvLysrU79+/ZSfn68ffvhBs2fP1rx58zRq1KhL3u+IESO0YMECzZ49Wz/88INOnz6t/v37q6yszBm7UW3dunXT4cOHK13++Mc/qnnz5urcufMlb3vHHXdUut2iRYtclLrmJk2aVCnriy++eMn1p0+frtdff11vvfWW1qxZo9jYWN1+++0VnxvkTrZu3Sq73a6///3v2rRpk9544w298847ev755y97W3c8hp988olGjBihF154QevXr1ePHj3Ut29f7d+/v8r19+zZozvvvFM9evTQ+vXr9fzzz+upp57SvHnzXJy8epYv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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "x = np.linspace(-10,10,100)\n",
    "plt.plot(x,[relu (i) for i in x])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "ce046db3",
   "metadata": {},
   "outputs": [],
   "source": [
    "# simiod 一般作为分类任务最后一层即输出层的激活函数\n",
    "# 一般不做隐层的激活函数，因为容易梯度消失或梯度爆炸"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "de5bf901",
   "metadata": {},
   "outputs": [],
   "source": [
    "# tanh 双曲正切函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "id": "9048ea9e",
   "metadata": {},
   "outputs": [],
   "source": [
    "def tanh(x):\n",
    "    return (np.exp(x) - np.exp(-x)) / (np.exp(x) + np.exp(-x))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "id": "9e8f95e4",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7fc728fa4460>]"
      ]
     },
     "execution_count": 60,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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1fjx47Vr164m2/r68ausrNRbb72lf/mXfznrw5195fidrq3fh00d1/b8DiXgtLPi4mLFx8e7rIuJiVFYWJiKi4ub3CYsLEwxMTEu6+Pj45vcxlPmzJmjkSNHKjk5udl2o0eP1vz58/XZZ5/pT3/6k9avX69rrrlGFRUVHVRpyz344INauHChVqxYocmTJ+v555/Xb37zmybb1x+TM4+zNx6vxuzcuVMvvPCCJk2a1Gw7bzyGhw8fVk1NTav+7Bv7NxkfH6/q6modPnzYbbW2B2OMpk6dqiuuuELp6elNtktMTNRrr72mxYsX691331VaWpquvfZarV69ugOrbZmhQ4fqzTff1Mcff6zXX39dxcXFysrK0pEjRxpt78vHT5L+8Y9/qKysrNkfCn3p+J2prd+HTR3X9vwODciniZ9p+vTpmjFjRrNt1q9ff9Y5J/UaS+nGmLOm9/bYpqXa0ud9+/bp448/1t///vez7n/cuHHO36enp2vw4MFKSUnRhx9+qNtvv73thbdQa/r30EMPOdddcskliomJ0T/90z85R3WacuaxcefxakxbjuGBAwc0atQo3XHHHbr33nub3dbTx7A5rf2zb6x9Y+u9zeTJk/X111/riy++aLZdWlqa0tLSnK8zMzNVWFioP/7xj7ryyivdXWarjB492vn7/v37KzMzU3369NEbb7yhqVOnNrqNrx4/qe6HwtGjR7uM6p/Jl45fU9ryfeju71ACjuq+RMaPH99sm169erVoXwkJCQ0mSZWWlqqqqqpBWj19m8rKSpWWlrqM4pSUlCgrK6tFn9tabenz3Llz1a1bN918882t/rzExESlpKRox44drd62Lc7lmNZfKfTDDz80GnDqr/goLi5WYmKic31JSUmTx9gdWtvHAwcOaMSIEcrMzNRrr73W6s/r6GPYmNjYWAUHBzf4Ka+5P/uEhIRG24eEhDQbYD3t/vvv1/vvv6/Vq1erR48erd5+2LBheuutt9xQWfuKiopS//79m/x75avHT5L27t2r5cuX69133231tr5y/Nr6fdjUcW3P71ACjuq+NGNjY9tlX5mZmXr66adVVFTkPNiffPKJrFarMjIyGt0mIyNDoaGhys3N1dixYyVJRUVF2rJli5555pl2qetMre2zMUZz587VL3/5S4WGhrb6844cOaLCwkKXfwDudC7HND8/X5KarDU1NVUJCQnKzc3VwIEDJdWdZ1+1apVmz57dtoLboDV93L9/v0aMGKGMjAzNnTtXQUGtPzvd0cewMWFhYcrIyFBubq5uu+025/rc3FzdcsstjW6TmZmpDz74wGXdJ598osGDB7fp77K7GWN0//33a8mSJVq5cqVSU1PbtJ/8/HyPHquWqqio0LZt2zR8+PBG3/e143e6uXPnKi4uTjfeeGOrt/WV49fW78PMzEzl5ua6jKB/8skn7ftDfbtNVw4Qe/fuNfn5+WbGjBmmU6dOJj8/3+Tn55vy8nJjjDHV1dUmPT3dXHvttearr74yy5cvNz169DCTJ0927mPfvn0mLS3NrFu3zrlu0qRJpkePHmb58uXmq6++Mtdcc40ZMGCAqa6u7vA+Nmb58uVGkvn2228bfT8tLc28++67xhhjysvLzcMPP2zWrFljdu/ebVasWGEyMzPNeeedZxwOR0eWfVZr1qwxzz77rMnPzze7du0yixYtMklJSebmm292aXd6/4wx5g9/+IOx2Wzm3XffNd988435+c9/bhITE72uf8bUXZF3/vnnm2uuucbs27fPFBUVOZfT+coxXLhwoQkNDTVz5swx3377rZkyZYqJiooye/bsMcYY89hjj5mcnBxn+127dpnIyEjz0EMPmW+//dbMmTPHhIaGmnfeecdTXWjWv/7rvxqbzWZWrlzpcqyOHz/ubHNmH5977jmzZMkS8/3335stW7aYxx57zEgyixcv9kQXmvXwww+blStXml27dpm1a9eaMWPGmM6dO/vN8atXU1NjevbsaR599NEG7/na8SsvL3f+XyfJ+Z25d+9eY0zLvg9zcnJcrnT8v//7PxMcHGz+8Ic/mG3btpk//OEPJiQkxKxdu7bd6ibgtNLdd99tJDVYVqxY4Wyzd+9ec+ONN5qIiAjTtWtXM3nyZHPy5Enn+7t3726wzYkTJ8zkyZNN165dTUREhBkzZowpKCjowJ417+c//7nJyspq8n1JZu7cucYYY44fP26ys7NN9+7dTWhoqOnZs6e5++67vao/9TZu3GiGDh1qbDabCQ8PN2lpaeapp54yx44dc2l3ev+Mqbs08qmnnjIJCQnGarWaK6+80nzzzTcdXH3LzJ07t9G/s2f+fONLx/Cll14yKSkpJiwszAwaNMjlEuq7777bXHXVVS7tV65caQYOHGjCwsJMr169zCuvvNLBFbdcU8fq9L9/Z/Zx9uzZpk+fPiY8PNzExMSYK664wnz44YcdX3wLjBs3ziQmJprQ0FCTlJRkbr/9drN161bn+75+/Op9/PHHRpLZvn17g/d87fjVX8Z+5nL33XcbY1r2fXjVVVc529d7++23TVpamgkNDTV9+/Zt90BnMebUbC0AAAA/wWXiAADA7xBwAACA3yHgAAAAv0PAAQAAfoeAAwAA/A4BBwAA+B0CDgAA8DsEHAAA4HcIOAAAwO8QcAAAgN8h4AAAAL9DwAEAAH7n/wOgS9KGilrNaAAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(x,[tanh (i) for i in x])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "371240b8",
   "metadata": {},
   "outputs": [],
   "source": [
    "# softplus\n",
    "def softplus(x):\n",
    "    return np.log(np.exp(x)+1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "adc57d0a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7ff5eaf0e6d0>]"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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aqUePXpUu+4VV1xRab0vvvjCS6lr78knn6yU9bHHHqt2/OTJk/XCCy/olVde0dKlS5WQkKDLL7+84rpBvmT9+vVyuVx68803tWbNGr344ot644039Mgjj5xyXV88htOnT9eoUaP06KOPKiMjQ3369NGAAQO0Y8eOKsdv3bpVV155pfr06aOMjAw98sgjuvfeezVr1iwvJ6+ZhQsXasSIEVqyZInmzZunsrIy9evXT4WFhadcd8OGDZWOV9u2bb2QuPY6depUKeeqVatOOtbfjp8kLV26tNL+zZs3T5I0dOjQatfz1eNXWFiotLQ0vfLKK1XefzrPhz/99JOGDRumW265RZmZmbrlllt0ww036Oeff3ZfcBOApk6damJjY09Y/sUXX5igoCCza9euimUffvihsdvtJi8vr8rHOnTokAkNDTXTpk2rWLZr1y4TFBRkvvrqK7dnPxMlJSUmLi7OPPnkk9WOGz58uLnmmmu8E+oMtWzZ0rz44os1Hu9yuUxCQoJ59tlnK5YVFxeb2NhY88Ybb3ggoftNnjzZJCcnVzvGV4/hueeea+68885Ky1JSUszYsWOrHP/QQw+ZlJSUSsvuuOMOc95553ksozvl5uYaSWbhwoUnHTN//nwjyRw8eNB7wU7TE088YdLS0mo83t+PnzHG3HfffaZNmzbG5XJVeb8/HT9JZs6cORXfn+7z4Q033GCuuOKKSsv69+9vbrzxRrdlDahXPk7lp59+UmpqqhITEyuW9e/fXw6HQ8uXL69yneXLl6u0tFT9+vWrWJaYmKjU1FQtXrzY45lrY+7cudq3b59uvfXWU45dsGCB4uLi1K5dO/3tb39Tbm6u5wOepkmTJqlRo0bq2rWrJk6cWO2UxNatW5WTk1PpeNntdl100UU+d7xOJi8vTw0bNjzlOF87hiUlJVq+fHmlv3tJ6tev30n/7n/66acTxvfv31/Lli1TaWmpx7K6S15eniTV6Hh169ZNTZs21WWXXab58+d7Otpp++2335SYmKjk5GTdeOON2rJly0nH+vvxKykp0Xvvvafbb7/9lBcy9Zfj90en+3x4suPqzufQOlU+cnJyFB8fX2lZgwYNFBYWppycnJOuExYWpgYNGlRaHh8ff9J1rPLOO++of//+SkpKqnbcgAED9P777+u///2vnn/+eS1dulSXXnqpHA6Hl5LW3H333adp06Zp/vz5GjlypF566SXdfffdJx1/7Jgcf5x98XhVZfPmzXr55Zd15513VjvOF4/hvn375HQ6a/V3X9W/yfj4eJWVlWnfvn0ey+oOxhiNHj1aF1xwgVJTU086rmnTpnrrrbc0a9YszZ49W+3bt9dll12mRYsWeTFtzfTs2VP/+c9/9PXXX+vtt99WTk6Oevfurf3791c53p+PnyR9/PHHOnToULX/YfOn43e8030+PNlxdedzqM9d1fZ448eP14QJE6ods3Tp0lO+x+GYqtqtMeaUrdcd69TU6ezzzp079fXXX+ujjz465eMPGzas4s+pqanq0aOHWrZsqc8//1zXXXfd6Qevodrs3/3331+xrEuXLmrQoIGGDBlS8WrIyRx/bDx5vKpyOsdw9+7duuKKKzR06FD99a9/rXZdq49hdWr7d1/V+KqW+5qRI0dq5cqV+uGHH6od1759e7Vv377i+169eikrK0tTpkzRhRde6OmYtTJgwICKP3fu3Fm9evVSmzZt9O6772r06NFVruOvx08q/w/bgAEDKr0afjx/On4nczrPh55+DvX58jFy5EjdeOON1Y5p1apVjR4rISHhhDfMHDx4UKWlpSe0vD+uU1JSooMHD1Z69SM3N1e9e/eu0XZr63T2eerUqWrUqJGuvvrqWm+vadOmatmypX777bdar3s6zuSYHvtEx6ZNm6osH8femZ+Tk6OmTZtWLM/NzT3pMfaE2u7j7t27dckll6hXr1566623ar09bx/DqjRu3FjBwcEn/O+our/7hISEKseHhIRUWy6tds8992ju3LlatGiRmjdvXuv1zzvvPL333nseSOZeUVFR6ty580l/rvz1+EnS9u3b9e2332r27Nm1Xtdfjt/pPh+e7Li68znU58tH48aN1bhxY7c8Vq9evTRx4kRlZ2dXHIhvvvlGdrtd3bt3r3Kd7t27KzQ0VPPmzdMNN9wgScrOztbq1as1efJkt+Q6Xm332RijqVOn6i9/+YtCQ0Nrvb39+/crKyur0g+nJ53JMc3IyJCkk2ZNTk5WQkKC5s2bp27dukkqn9dduHChJk2adHqBT0Nt9nHXrl265JJL1L17d02dOlVBQbWfDfX2MaxKWFiYunfvrnnz5unaa6+tWD5v3jxdc801Va7Tq1cvffrpp5WWffPNN+rRo8dp/Sx7mjFG99xzj+bMmaMFCxYoOTn5tB4nIyPD0mNVUw6HQ+vWrVOfPn2qvN/fjt8fTZ06VXFxcRo4cGCt1/WX43e6z4e9evXSvHnzKr3y/M0337j3P9xue+uqD9i+fbvJyMgwEyZMMPXq1TMZGRkmIyPDFBQUGGOMKSsrM6mpqeayyy4zK1asMN9++61p3ry5GTlyZMVj7Ny507Rv3978/PPPFcvuvPNO07x5c/Ptt9+aFStWmEsvvdSkpaWZsrIyr+9jVb799lsjyaxdu7bK+9u3b29mz55tjDGmoKDAjBkzxixevNhs3brVzJ8/3/Tq1cs0a9bM5OfnezP2KS1evNi88MILJiMjw2zZssVMnz7dJCYmmquvvrrSuD/unzHGPPvssyY2NtbMnj3brFq1ytx0002madOmPrd/xpR/cuqss84yl156qdm5c6fJzs6uuP2RvxzDadOmmdDQUPPOO++YtWvXmlGjRpmoqCizbds2Y4wxY8eONbfcckvF+C1btpjIyEhz//33m7Vr15p33nnHhIaGmpkzZ1q1C9W66667TGxsrFmwYEGlY1VUVFQx5vh9fPHFF82cOXPMxo0bzerVq83YsWONJDNr1iwrdqFaY8aMMQsWLDBbtmwxS5YsMYMGDTLR0dEBc/yOcTqdpkWLFubhhx8+4T5/O34FBQUVv+skVTxnbt++3RhTs+fDW265pdIn0n788UcTHBxsnn32WbNu3Trz7LPPmpCQELNkyRK35Q6o8jF8+HAj6YTb/PnzK8Zs377dDBw40ERERJiGDRuakSNHmuLi4or7t27desI6R44cMSNHjjQNGzY0ERERZtCgQWbHjh1e3LPq3XTTTaZ3794nvV+SmTp1qjHGmKKiItOvXz/TpEkTExoaalq0aGGGDx/uU/tzzPLly03Pnj1NbGysCQ8PN+3btzdPPPGEKSwsrDTuj/tnTPnHy5544gmTkJBg7Ha7ufDCC82qVau8nL5mpk6dWuXP7PH/L/CnY/jqq6+ali1bmrCwMHP22WdX+hjq8OHDzUUXXVRp/IIFC0y3bt1MWFiYadWqlXn99de9nLjmTnas/vjzd/w+Tpo0ybRp08aEh4ebBg0amAsuuMB8/vnn3g9fA8OGDTNNmzY1oaGhJjEx0Vx33XVmzZo1Fff7+/E75uuvvzaSzIYNG064z9+O37GPAh9/Gz58uDGmZs+HF110UcX4Y2bMmGHat29vQkNDTUpKitvLls2Yo+8OAgAA8II69VFbAABgPcoHAADwKsoHAADwKsoHAADwKsoHAADwKsoHAADwKsoHAADwKsoHAADwKsoHAADwKsoHAADwKsoHAADwKsoHAADwqv8PZfzMR2BRXOQAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "x = np.linspace(-10,10,100)\n",
    "plt.plot(x,[softplus (i) for i in x])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "73aa61d6",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 在参数初始化的时候，可以参考\n",
    " #w = np.random.randn(2,2)*0.01\n",
    " #b = np.zeros((2,1))\n",
    "#不会把w变成0，要把w变得比较小，在0附近，但是不能是0，如果是0的话，dz带进去求导就全是0.\n",
    "#权重b一般初始化可以变成0，\n",
    "#初始化权重的值选择"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.13"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
